package lagou.homework.lagouhomework.Unit4.code.q1;

import java.io.File;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

public class MainTest {
    //显示系统选项
    public static void showMenu(){
        System.out.println("1、新增学生信息");
        System.out.println("2、查找学生信息");
        System.out.println("3、删除学生信息");
        System.out.println("4、修改学生信息");
        System.out.println("5、遍历所有学生信息");
        System.out.println("0、退出系统");
    }
    public static void main(String[] args) {

        // 获取输入
        Scanner sc = new Scanner(System.in);
        // 用于接收输入的值
        int age;
        int id;
        String name;
        // List<Student> listStu = new LinkedList<>();
        List<Student> listStu = null;

        // 指向学生集合文件
        File f1 = new File("./src/lagou/homework/lagouhomework/Unit4/code/q1/StudentList");
        if (f1.exists()) {
            // 如果文件存在则读取
            listStu = ListSet.readList();
        }else{
            // 如果不存在则创建一个新集合
            listStu = new LinkedList<>();
        }

        b1:while (true) {
            // 显示选项，并提示选择
            showMenu();
            System.out.println("请输入指定数字[0-6]进行相应操作：");
            // 获取输入的选项
            int i1 = sc.nextInt();
            switch (i1) {
                // 增加
                case 1:
                    System.out.println("请输入学号[1000~9999]:");
                    id = sc.nextInt();
                    System.out.println("请输入姓名：");
                    name = sc.next();
                    System.out.println("请输入输入年龄：");
                    age = sc.nextInt();
                    Student addStu = SelectStu.selectStu(id, listStu);   //先搜索该学生是否已经存在，如果存在，则不能再添加
                    if (null != addStu) {
                        System.out.println("该学生已存在，请确认！");

                    } else {
                        AddStu.addStu(id, name, age, listStu);
                    }
                    break;
                // 查找
                case 2:
                    System.out.println("请输入要查找的学生学号[1000~9999]：");
                    id = sc.nextInt();
                    Student selStu = SelectStu.selectStu(id, listStu);
                    if (null == selStu) {
                        System.out.println("未查到此学生信息，请确认！");

                    } else {
                        System.out.println("搜索成功，学生信息为：" + selStu.show());
                    }

                    break;

                case 3:
                    System.out.println("输入需要删除的学生学号[1000~9999]：");
                    id = sc.nextInt();
                    DeleteStu.delStu(id, listStu);

                    break;
                // 修改-->先查询、再修改
                case 4:
                    System.out.println("输入要修改的学生学号[1000~9999]：");
                    id = sc.nextInt();
                    Student stu1 = SelectStu.selectStu(id, listStu);
                    // 如果查询结果为null，则退出，否则执行下面的修改操作
                    if (stu1==null ) {
                        System.out.println("未查到此学生信息，请确认！");
                        break;
                    }
                    System.out.println("请输入修改后的学生信息：");
                    System.out.println("请输入修改后的学生学号[1000~9999]：");
                    id = sc.nextInt();
                    System.out.println("请输入修改后的学生姓名：");
                    name = sc.next();
                    System.out.println("请输入修改的后年龄：");
                    age = sc.nextInt();
                    UpdateStu.updateStu(id, name, age, stu1);

                    break;
                // 显示所有学生信息
                case 5:
                    System.out.println("打印所有学生信息：");
                    ShowStu.showStu(listStu);

                    break;
                // 退出系统
                case 0:
                    System.out.println("正在退出系统...");
                    ListSet.writeList(listStu);
                    break b1;                               // 输入0时，跳出循环

                default:
                    System.out.println("请重新选择");
                    break;
            }

        }

    }

}
